1. Field of the Invention
The present invention relates generally to a function calculation method and a function arithmetic circuit for calculating a sine function and a cosine function with the Taylor series equation and, more particularly, to a function calculation method and a function arithmetic circuit for calculating for use a sine function and a cosine function in synchronism with an arithmetic cycle of fast Fourier transform.
2. Description of the Related Arts
Traditionally, in information processing apparatuses using computers, sine functions and cosine functions calculated from angle information are sometimes used. Especially, when signal processes such as Fourier transform are performed by hardware, values of a sine function and a cosine function are found using angle information as an address and are used in an arithmetic process.
FIG. 1 shows an example of a conventional system which performs fast Fourier transform in the field of radio astronomy. An analogue time-series signal 202 such as electric waves and audio signals received by a dedicated parabolic antenna 200 are converted by an AD conversion apparatus into a digital signal 205 and then decomposed to a frequency component 208 by executing a fast Fourier transform process in a Fourier transform apparatus 206 and analyzed. In this Fourier transform apparatus 206, angle information is considered as an address, and a sine function and a cosine function corresponding to the address are used as arithmetic parameters.
FIGS. 2A and 2B show an example of a conventional pipeline fast Fourier transform apparatus (see Japanese Patent Application Laid-Open Pub. No. 06-019955). In FIGS. 2A and 2B, the conventional fast Fourier transform apparatus consists of sorting circuit units 242, 252, 256 and 260, butterfly arithmetic units 244, 254, 258 and 262 and twist coefficient memory circuit units 264, 266, 268 and 270, and for example, the butterfly arithmetic units 244 consists of an adder 246 and multipliers 248 and 250. This fast Fourier transform apparatus is a circuit performing fast Fourier transform of which the number of fast Fourier transform (FFT) points to be processed is N, divides an input data point number N into N/R (wherein R is a radix), arranges the divided input data point number in serial, inputs it to a basic circuit of the fast Fourier transform which consists of a data sorting circuit unit of R input, a twist coefficient multiplier unit and a butterfly arithmetic unit, and is configured such that the fast Fourier transform are performed with considering this basic circuit as one (1) stage and arranging M stages (M=log R N) in parallel. In this fast Fourier transform, a twist coefficient derived from a sine function and a cosine function of angle information indicating an address is found in advance, and the process is executed with holding this in memory constituting the twist coefficient memory circuit units 264, 266, 268 and 270, considering the angle information as an address.
By the way, traditionally, as a method for finding a sine function and a cosine function corresponding to the angle information indicating the address, a look-up table 210 of FIG. 3 is known. The look-up table 210 consists of memory 212 holding values of the sine function and the cosine function, considering the angle information as an address i. In the fast Fourier transform apparatus of FIGS. 2A and 2B, the twist coefficient is calculated from the sine function and the cosine function calculated in advance and is stored in the memory, but when resolution of the angle information becomes higher, capacity of memory holding the twist coefficient is increased in proportion to the resolution. Therefore, if the sine function and the cosine function are calculated in the fast Fourier arithmetic at a high speed, the memory for calculating and storing the twist coefficient, and when the resolution is improved, capacity of the memory will not increased. As these methods for calculating the sine function and the cosine function in conformity with the arithmetic speed of the fast Fourier transform, a circuit in which an arithmetic process based on a Taylor series equation is simply achieved by hardware is considered. An arithmetic principle of this circuit is as follows. Assuming that angles 0 to 360 degrees are divided equally into N, the i-th angle θi is represented by following equation.θi=2πi/N 
The Taylor series of the sine and the cosine for this i-th angle θi is as follows.
                              sin          ⁢                                          ⁢          θ          ⁢                                          ⁢          i                =                ⁢                              θ            ⁢                                                  ⁢            i                    -                      (                          θ              ⁢                                                          ⁢                                                i                  3                                /                                  3                  !                                                      )                    +                      (                          θ              ⁢                                                          ⁢                                                i                  5                                /                                  5                  !                                                      )                    -                      (                          θ              ⁢                                                          ⁢                                                i                  7                                /                                  7                  !                                                      )                    +                      (                          θ              ⁢                                                          ⁢                                                i                  9                                /                                  9                  !                                                      )                    -          …                                        =                ⁢                              (                          2              ⁢              π              ⁢                                                          ⁢                              i                /                N                                      )                    -                      {                                                            (                                      2                    ⁢                    π                    ⁢                                                                                  ⁢                                          i                      /                      N                                                        )                                3                            /                              3                !                                      }                    +                      {                                                            (                                      2                    ⁢                    π                    ⁢                                                                                  ⁢                                          i                      /                      N                                                        )                                5                            /                              5                !                                      }                    -                                                ⁢                              {                                                            (                                      2                    ⁢                    π                    ⁢                                                                                  ⁢                                          i                      /                      N                                                        )                                7                            /                              7                !                                      }                    +          …                                                  cos          ⁢                                          ⁢          θ          ⁢                                          ⁢          i                =                ⁢                  1          -                      (                          θ              ⁢                                                          ⁢                                                i                  2                                /                                  2                  !                                                      )                    +                      (                          θ              ⁢                                                          ⁢                                                i                  4                                /                                  4                  !                                                      )                    -                      (                          θ              ⁢                                                          ⁢                                                i                  6                                /                                  6                  !                                                      )                    +                      (                          θ              ⁢                                                          ⁢                                                i                  8                                /                                  8                  !                                                      )                    -          …                                        =                ⁢                  1          -                      {                                                            (                                      2                    ⁢                    π                    ⁢                                                                                  ⁢                                          i                      /                      N                                                        )                                2                            /                              2                !                                      }                    +                      {                                                            (                                      2                    ⁢                    π                    ⁢                                                                                  ⁢                                          i                      /                      N                                                        )                                4                            /                              4                !                                      }                    -                                                ⁢                              {                                                            (                                      2                    ⁢                    π                    ⁢                                                                                  ⁢                                          i                      /                      N                                                        )                                6                            /                              6                !                                      }                    +          …                    
FIG. 4 shows a simple circuit based on hardware which finds sin θ from the Taylor series, and the arithmetic of the Taylor series equation up to the fourth term is achieved by a multiplier 218, a shifter 220, adders 222, 224, 226, 230, 232, 236 and 238 and adders 228, 234, 240. In this circuit, for example in the case of the Taylor series which has four (4) terms, the value of the sine function can be calculated in about 10 clock cycles. Further, as a method for quickly calculating a transcendental function including trigonometric functions, there is an apparatus which executes parallel processing of the Taylor series (see Japanese Patent Application Laid-Open Pub. No. 10-214176). This apparatus executes a parallel process in which the Taylor series is divided into two (2) partial series and processed in parallel and then two (2) results are subtracted. For example, in the case of the Taylor series which has 10 terms, by decomposing it to partial series which have five (5) terms and processing them in parallel, the sine function and the cosine function can be calculated in about 10 clock cycles. Each parallel processing unit executes the process by transforming cyclically, and floating-point arithmetic is assumed.
However, in these conventional methods for finding a sine function and a cosine function with the use of Taylor series equations, there are following problems. First, as shown in FIG. 4, in the case that each term of the Taylor series equation is simply achieved by a hardware arithmetic circuit, scale of hardware is increased corresponding to the number of terms, and clock cycles required for the arithmetic are also increased, therefore there is a problem which reduce the overall arithmetic speed if it is applied to fast Fourier transform. On the other hand, in the method which calculates in parallel by dividing the Taylor series into two (2) partial series, although the arithmetic process speed can be increased by executing it in parallel, the scale of hardware is equivalent to the case that it is not divided into partial series, and the scale of circuit is large, and if achieved by software, there is a problem of a high processing load, because parallel processing of floating-point arithmetic is executed.